其他
从精准化测试看ASM在Android中的强势插入-Plugin调试
点击上方蓝字关注我,知识会给你力量
Gradle作为一个脚本工具,在开发的过程中,最痛苦的莫过于「调试」,大部分时候,我们都是通过Log的方式来进行调试,在编译过程中,可以很清楚的看见执行过程,同时也能看到系统的其它执行的Task。
Logging
Logging是Gradle提供的日志工具,它的使用非常简单,我们可以对其进行下封装。
fun log(log: String) {
Logging.getLogger(MyPlugin::class.java).lifecycle(log)
}
通过getLogger就可以获取Logging的实例,它和Android原生的Log类似,也有debug、info、error等日志级别,大家可以根据自己的需求来调用。
断点调试
Gradle插件的断点调试不能像普通代码那样调试,需要借助Android Studio的Remote调试功能。
首先,需要在Android Studio中创建一个Remote调试器,在运行标签上点击「Edit Configuration」,再点击「+」新增一个调试类型,选择Remote,将其命名为「plugin_debug」(当然,其它名字也行),如下所示。
接下来,在当前项目的终端下,输入如下指令:
➜ ASMTest git:(master) ./gradlew assembleDebug -Dorg.gradle.debug=true --no-daemon
通过这个指令,就可以让Gradle在编译过程中等待Plugin Attach到Remote上。
最后,在运行标签上选择刚刚创建的「plugin_debug」选项,然后点击debug按钮执行指令即可等待断点命中了。
向大家推荐下我的网站 https://xuyisheng.top/ 点击原文一键直达
专注 Android-Kotlin-Flutter 欢迎大家访问
往期推荐
更文不易,点个“三连”支持一下👇